#pragma once

#include "PluginManagerExp.h"
#include "PluginManagerDef.h"
#include <QMap>

class LoadDllHelper;
typedef QMap<QString ,LoadDllHelper*> StringMapDll;

class QPluginManager  : public PluginManagerImp
{
public:
	QPluginManager(void);
	virtual ~QPluginManager(void);

protected:
	virtual bool		initPluginModule(HANDLE);
	virtual bool		unLoadPlugin(bool all = false);
	virtual bool		unLoadPlugin(const wchar_t* filename);
	virtual	bool		loadPlugin(const wchar_t* filename) ;
	virtual	HANDLE		getModuleInterface(const wchar_t* interfaceName) ;
	virtual void*		getAppModule(const wchar_t* dllname);
	virtual	HANDLE		getModuleFun(const wchar_t* dllName);

private:
	StringMapDll		m_stringMapDll;
};

